package com.example.demo.huawei;

import java.util.Scanner;

// GPU调度执行时长
/*输入
3
5
1 2 3 4 5
*/
//输出
//6
//以示例1为例，每秒任务执行过程如下：
//第1秒开始进来1个任务，执行完成后剩余0个任务（1<=3）
//第2秒开始进来2个任务，执行完成后剩余0个任务（2<=3）
//第3秒开始进来3个任务，执行完成后剩余0个任务（3<=3）
//第4秒开始进来4个任务，执行完成后剩余1个任务（4>3）
//第5秒开始进来5+1个任务，执行完成后剩余3个任务（6>3）
//第6秒开始进来3个任务，执行完成后剩余0个任务（3>=3）
/*
4
5
5 4 1 1 1

/*
1 1
2 2
3 0
4
5


 */
public class OD34 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 一次最多执行的任务个数
        int maxJobs = sc.nextInt();
        // 任务数组长度
        int n = sc.nextInt();
        int[] jobsArr = new int[n + 1];
        for (int i = 0; i < n; i++) {
            jobsArr[i] = sc.nextInt();
        }
        jobsArr[n] = 0;
        int time = 0;
        for (int i = 0; i < jobsArr.length - 1; i++) {
            if (jobsArr[i] <= maxJobs) {
                time++;
            } else {
                time += jobsArr[i] / maxJobs;
                jobsArr[i + 1] = jobsArr[i + 1] + jobsArr[i] - maxJobs;
            }
        }
        if (jobsArr[n] == 0) {
            System.out.println(time);
        } else {
            System.out.println(jobsArr.length);
        }


    }
}
